﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Practices.Unity;
using PharmacyBussinesEntities;
using PharmacyService;

namespace PharmacyWeb.Almacen
{
    public partial class frmLotes : System.Web.UI.Page
    {
        [Dependency]
        public ILoteService loteService { get; set; }
        [Dependency]
        public IProductoService prodService { get; set; }
        
        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (!Page.IsPostBack)
            {
                var accion = Request.QueryString["accion"];
                var id = Request.QueryString["id"];

                if (accion==null)
                {
                    Response.Redirect("frmListLotes.aspx");
                }
                else if (accion=="editar")
                {
                    var identificador = int.Parse(id);

                    var lote = loteService.GetFromLoteById(identificador);
                    txtId.Text = lote.Id.ToString();
                    txtDescripcion.Text = lote.Descripcion;
                    txtCantidad.Text = lote.Cantidad.ToString();
                    txtFechaCanje.Text = lote.FechaCanje.ToShortDateString();
                    txtFVence.Text = lote.FechaVencimiento.ToShortDateString();
                    txtCosto.Text = lote.PrecioCosto.ToString();
                    txtPrecioVenta.Text = lote.PrecioVenta.ToString();

                    txtProdID.Text = lote.Producto.Id.ToString();
                    txtProducto.Text = lote.Producto.Nombre;
                }
                else if (accion != null && accion == "eliminar" && id!= null)
                {
                    var ids = Int32.Parse(id.ToString());

                    loteService.RemoveLote(ids);
                    Response.Redirect("frmListLotes.aspx");
                }
            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            var accion = Request.QueryString["accion"];
            var lote = new Lote()
            {
                Descripcion =txtDescripcion.Text,
                Cantidad = decimal.Parse(txtCantidad.Text),
                FechaCanje = DateTime.Parse(txtFechaCanje.Text),
                FechaVencimiento = DateTime.Parse(txtFVence.Text),
                PrecioCosto = decimal.Parse(txtCosto.Text),
                PrecioVenta = decimal.Parse(txtPrecioVenta.Text),
                IdPoducto = Int32.Parse(txtProdID.Text)
                

            };
            if (accion=="nuevo")
            {
                loteService.AddLote(lote);
                Response.Redirect("frmListLotes.aspx");
            }else if (accion=="editar")
            {
                lote.Id = int.Parse(txtId.Text);

                loteService.UpdateLote(lote);
                Response.Redirect("frmListLotes.aspx");
            }
        }

        protected void grillaP_SelectedIndexChanged(object sender, EventArgs e)
        {
            var productoID = Int32.Parse(grillaP.SelectedValue.ToString());

            var producto = prodService.GetFromProductoById(productoID);

            txtProducto.Text = producto.Nombre;
            txtProdID.Text = producto.Id.ToString();
        }

        protected void odsProductos_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
        {
            e.ObjectInstance = prodService;
        }
    }
}